package com.pizzaonline.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jdom.Element;
import com.pizzaonline.utils.XMLControler;

/**
 * Servlet implementation class for Servlet: ModificationMenu
 *
 */
 public class ModificationMenu extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;
   
   private String nom;
   private String boisson;
   private String dessert;
   private String salade;
   private String pizza;
   
   /* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	public ModificationMenu() {
		super();
	}   	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}  	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		//Mode UTF-8
		request.setCharacterEncoding("UTF-8");
		
		//Récupération des paramètres
		nom = request.getParameter("nom_menu");
		pizza = request.getParameter("pizza");
		salade = request.getParameter("salade");
		boisson = request.getParameter("boisson");
		dessert = request.getParameter("dessert");
		
		System.out.println("Menu : "+nom);
		System.out.println("Pizza : "+pizza);
		System.out.println("Salade : "+salade);
		System.out.println("Boisson : "+boisson);
		System.out.println("Dessert : "+dessert);
		
		//Type de réponse
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		
		//Modification dans le fichier XML
		float newPrixMenu = 0;
		float prixBoisson = 0;
		float prixSalade = 0;
		float prixDessert = 0;
		float prixPizza = 0;
		ServletContext c = this.getServletConfig().getServletContext();
		
		try{
		
			//Lecture du fichier XML	
			XMLControler.readXMLFile("carte.xml");
			
			//Récupération du noeud du menu
			Element courant = XMLControler.getElementMenu(nom);
			if(courant != null){
				//Mise à jour des attributs
				if(pizza != null){
					courant.setAttribute("nomPizza", pizza);
					prixPizza += XMLControler.getPrixPizza(pizza);
				}
				
				if(boisson != null){
					courant.setAttribute("nomBoisson", boisson);
					prixBoisson += XMLControler.getPrixBoisson(boisson);
				}
				
				if(salade != null){
					courant.setAttribute("nomSalade", salade);
					prixSalade += XMLControler.getPrixSalade(salade);
				}
				
				if(dessert != null){
					courant.setAttribute("nomDessert", dessert);
					prixDessert += XMLControler.getPrixDessert(dessert);
				}
				
				//Mise à jour du prix du menu
				newPrixMenu = prixPizza + prixBoisson + prixSalade + prixDessert;
				courant.setAttribute("prix", String.valueOf(newPrixMenu));
				
				//Sauvegarde du fichier XML
				XMLControler.saveXMLFile("carte.xml");
				out.println("<b><font color=\"green\">Modification réussie dans le fichier XML</font></b><br/>");
				out.println("<a href=\"modification.jsp?mode=menu\">Modifier un autre menu</a><br/>");
			}
			
		}
		catch(Exception e){
			System.out.println("Erreur de lecture du fichier XML");
			out.println("<b><font color=\"red\">Erreur de modification dans le fichier XML</font></b><br/>");
			out.println("<a href=\"modification.jsp?mode=menu\">Recommencer</a><br/>");	
			e.printStackTrace();
		}
		
	}   	  	    
}